#include <bits/stdc++.h>
#define int long long 
using namespace std;

const int maxn = 1e6 + 10;
string s, t;
int n;
int nex1[maxn];
int nex2[maxn];
int cnt1[maxn];
int cnt2[maxn];

void getNex(int nex[], string s){
	for (int i=2, j=0;i<=n;i++) {
		while(j&&s[i]!=s[j+1]){
			j=nex[j];
		}
		if (s[i]==s[j+1]) {
			j++;
		}
		nex[i]=j;
	}
}

void getCnt(string p, string s, int nex[], int cnt[]){
	for (int i=1, j=0;i<=n;i++) {
		while(j&&s[i]!=p[j+1]){
			j=nex[j];
		}
		if (s[i]==p[j+1]) {
			j++;
		}
		cnt[j]++; // 记录 匹配到的字符串p的 位置的 个数, 所以记录的是 s 的答案
	}
}

void solve(){
	cin>>n;
	cin>>s;
	cin>>t;
	s=" "+s; t=" "+t;
	// 处理 两个字符串的 nex 数组	
	getNex(nex1, s);
	getNex(nex2, t);
	
	// 开始 s 当作 p 去匹配 t
	getCnt(s, t, nex1, cnt2);
	getCnt(t, s, nex2, cnt1);
	int ans1=0;
	int ans2=0;
	
	for (int i=n;i>=1;i--) {
		cnt1[nex2[i]]+=cnt1[i];
		cnt2[nex1[i]]+=cnt2[i];
	}

	for (int i=1;i<=n;i++) {
		ans1+=cnt1[i];
		ans2+=cnt2[i];
	}
	
//	cout << ans1<<' '<<ans2<<'\n';
	if (ans1 > ans2) {
		cout << "Xiaoqiu"<<'\n';
	} else if (ans1==ans2) {
		cout <<"Draw"<<'\n';
	} else {
		cout << "Xiaoyu"<<'\n';
	}
	
}

signed main(){
	ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
	solve();
	return 0;
}
